package bosc.cn.dto.payment;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;


@Data
public class PaymentConfirmReqDTO {

    // 转出钱包ID
    @NotBlank(message = "转出钱包ID不能为空")
    @Size(max = 16, message = "转出钱包ID长度不能超过16")
    private String tfrOutWltId;

    // 转出钱包名称
    @Size(max = 256, message = "转出钱包名称长度不能超过256")
    private String tfrOutWltNm;

    // 转入钱包ID
    @NotBlank(message = "转入钱包ID不能为空")
    @Size(max = 16, message = "转入钱包ID长度不能超过16")
    private String tfrInWltId;

    // 转入钱包名称
    @Size(max = 256, message = "转入钱包名称长度不能超过256")
    private String tfrInWltNm;

    // 经办人证件类型
    @Size(max = 4, message = "经办人证件类型长度不能超过4")
    private String oprIdentTp;

    // 经办人证件号码
    @Size(max = 18, message = "经办人证件号码长度不能超过18")
    private String oprIdentNo;

    // 经办人姓名
    @Size(max = 256, message = "经办人姓名长度不能超过256")
    private String oprNm;

    // 经办人手机号
    @Size(max = 11, message = "经办人手机号长度不能超过11")
    private String oprTelNo;

    // 交易摘要
    @Size(max = 256, message = "交易摘要长度不能超过256")
    private String txnSmy;

    // 交易金额
    @NotNull(message = "交易金额不能为空")
    private BigDecimal txnAmt;

    // 收款方手机号
    @Size(max = 11, message = "收款方手机号长度不能超过11")
    private String tfrInTel;

    @Size(max = 10, message = "申请人工号长度不能超过10个字符")
    private String applyUserId;

    @NotBlank(message = "申请单号不能为空")
    @Size(max = 28, message = "钱包ID长度不能超过16个字符")
    private String applyNo;

    // 审批人列表
    private List<String> authList;


    @Data
    public static class BusinessInfoDTO {

        // 审批人ID
        @Size(max = 10, message = "审批人ID长度不能超过10")
        private String userId;

        public String getUserId() {
            return userId;
        }

        public void setUserId(String userId) {
            this.userId = userId;
        }
    }

    // 共同授权信息
    @NotBlank(message = "共同授权信息不能为空")
    @Size(max = 64, message = "共同授权信息长度不能超过64")
    private String authInfo;

    // 共同授权信息密文
    @Size(max = 256, message = "共同授权信息密文长度不能超过256")
    private String authMsg;

    public String getTfrOutWltId() {
        return tfrOutWltId;
    }

    public String getTfrOutWltNm() {
        return tfrOutWltNm;
    }

    public String getTfrInWltId() {
        return tfrInWltId;
    }

    public String getTfrInWltNm() {
        return tfrInWltNm;
    }

    public String getOprIdentTp() {
        return oprIdentTp;
    }

    public String getOprIdentNo() {
        return oprIdentNo;
    }

    public String getOprNm() {
        return oprNm;
    }

    public String getOprTelNo() {
        return oprTelNo;
    }

    public String getTxnSmy() {
        return txnSmy;
    }

    public BigDecimal getTxnAmt() {
        return txnAmt;
    }

    public String getTfrInTel() {
        return tfrInTel;
    }

    public List<String> getAuthList() {
        return authList;
    }

    public String getAuthInfo() {
        return authInfo;
    }

    public String getAuthMsg() {
        return authMsg;
    }
}